package demo.practice.dp;

public class P152 {


    public static void main(String[] args) {
        P152 p152 = new P152();
        p152.maxProduct(new int[]{2, 3, -2, 4});
    }

    public int maxProduct(int[] nums) {

        if (nums == null || nums.length == 0) {
            return -1;
        }
        int store[] = new int[nums.length + 1];
        store[0] = 1;

        int maxJ = Integer.MIN_VALUE;
        for (int i = 1; i < nums.length; i++) {
            //  store1=nums0
            //  store2=nums0*nums1
            //  store3=nums0*nums1*nums2
            store[i] = nums[i - 1] * store[i - 1];
            maxJ = Math.max(store[i], maxJ);
        }


        int max = store[1];
        int min = store[1];

        for (int i = 1; i < store.length; i++) {

            max = Math.max(store[i], max);
            min = Math.min(store[i], min);
            maxJ = Math.max(Math.max(maxJ, store[i] / max), store[i] / min);
        }
        return maxJ;

    }
}
